#企业微信地址
import pytest
from selenium import webdriver

#设置全局driver
# 全局设置driver方法1
driver = None


@pytest.fixture(scope='session')  # 以实现多个.py跨文件使用一个session来完成多个用例
def browser():
    global driver
    '''定义全局driver参数'''
    if driver is None:
        driver = webdriver.Chrome()
        driver.maximize_window()

    driver.get("http://xxxx.com/")
    driver.implicitly_wait(10)
    print("正在启动浏览器:Chrome")

    yield driver
    driver.close()

def pytest_addoption(parser):
    '''
    添加命令行参数 --browser
    '''

    parser.addoption(
        "--browser", action="store", default="firefox", help="browser option: chrome"
    )


@pytest.fixture(scope='session')  # 以实现多个.py跨文件使用一个session来完成多个用例
def driver(request):
    '''定义全局driver参数'''
    name = request.config.getoption("--browser")
    if name == "chrome":
        driver = webdriver.Chrome()
        driver.maximize_window()
    elif name == "firefox":
        driver = webdriver.Firefox()
        driver.maximize_window()

    driver.get("http://xxxx.cn/")
    driver.implicitly_wait(10)
    print("正在启动浏览器: %s" % name)


#Chrome浏览器,普通加载模式
@pytest.fixture(scope="class")
def chrome_load():
    print("开始执行")
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.implicitly_wait(5) #隐式等待
    yield driver
    print("执行结束")

#Chrome浏览器复用模式
@pytest.fixture(scope="class")
def chrome_option():
    print("开始执行")
    option = webdriver.ChromeOptions()
    option.add_experimental_option('w3c',False)
    option.debugger_address = '127.0.0.1:9222'
    driver = webdriver.Chrome(options=option)
    driver.implicitly_wait(5) #隐式等待
    yield driver
    print("执行结束")



